package cn.bugstack.mybatis.reflection.invoker;

import java.lang.reflect.Method;

public class MethodInvoker implements Invoker{

    private Class<?> type;
    private Method method;

    public MethodInvoker(Method method) {
        this.method = method;
        // 如果只有一个参数，返回参数类型，否则返回 return 类型
        // todo   method.getReturnType() 为啥不能统一用这个方法？ 20250324
        // 是呀 感觉该方法有潜在的问题
        if (method.getParameterTypes().length == 1) {
            type = method.getParameterTypes()[0];
        } else {
            type = method.getReturnType();
        }
    }


    @Override
    public Object invoke(Object target, Object[] args) throws Exception {
        return method.invoke(target, args);
    }

    @Override
    public Class<?> getType() {
        return type;
    }


}
